// pages/goods/detail/index.js
import { reqGoodDetail } from '../../../api/good'
//引入BehaviorStore 与页面建立关联
import { userBehavior } from '../../../behaviors/userBehaviors'

import { reqAddCart, reqCartList } from '@/api/cart'
Page({
  //注册Behavior
  behaviors: [userBehavior],

  // 页面的初始数据
  data: {
    goodsInfo: {}, // 商品详情
    show: false, // 控制加入购物车和立即购买弹框的显示
    count: 1, // 商品购买数量，默认是 1
    blessing: '', // 祝福语
    buyNow: 0, //控制是加入购物车还是立即购买 0 加入购物车 1立即购买
    allCount: '' //商品购买数量
  },

  // 加入购物车
  handleAddcart() {
    this.setData({
      show: true,
      buyNow: 0
    })
  },

  // 立即购买
  handeGotoBuy() {
    this.setData({
      show: true,
      buyNow: 1
    })
  },

  // 点击关闭弹框时触发的回调
  onClose() {
    this.setData({ show: false })
  },

  // 监听是否更改了购买数量
  onChangeGoodsCount(event) {
    this.setData({
      count: Number(event.detail)
    })
  },

  //获取商品详情数据
  getGoodDetail() {
    reqGoodDetail(this.goodsId).then((res) => {
      const { data } = res
      this.setData({
        goodsInfo: data
      })
    })
  },

  //全屏预览图片
  previewImage() {
    wx.previewImage({
      urls: this.data.goodsInfo.detailList
    })
  },

  //购买或加入购物车弹窗处理事件
  async handlerSubmit() {
    //解构相关数据
    const { token, count, blessing, buyNow } = this.data

    //获取商品的id
    const goodsId = this.goodsId

    //判断用户是否登录 如果没有登录 跳转到登录页面
    if (!token) {
      wx.navigateTo({
        url: '/pages/login/login'
      })
      return
    }

    //0为加入购物车 1为立即购买
    if (buyNow === 0) {
      const res = await reqAddCart({ goodsId, count, blessing })
      if (res.code == 200) {
        wx.toast({
          title: '加入购物车成功'
        })
        //获取购物车数量
        this.getCartCount()
        this.setData({
          show: false
        })
      }
    } else {
      wx.navigateTo({
        url: `/modules/orderPayModules/pages/order/detail/detail?goodsId=${goodsId}&blessing=${blessing}`
      })
    }
  },

  //获取购物车商品数量
  async getCartCount() {
    //使用token判断是否登陆了
    if (!this.data.token) {
      return
    } else {
      const res = await reqCartList()
      console.log(res)
      if (res.data.length !== 0) {
        //累加得出购买商品数量
        let allCount = 0

        res.data.forEach((item) => {
          allCount += item.count
        })
        this.setData({
          allCount: (allCount > 99 ? '99+' : allCount) + ''
        })
      }
    }
  },

  //获取传过来的参数
  onLoad(options) {
    //接收传过来的参数 把id挂载到this上面
    this.goodsId = options.goodsId

    //获取商品详情
    this.getGoodDetail()

    //获取购物车数量
    this.getCartCount()
  },
  //判断全局共享address是否存在数据 如果有就取出数据
  onShow() {},
  //转发功能
  onShareAppMessage() {},

  //把小程序分享朋友圈
  onShareTimeline() {}
})
